/**
 *  存储请求参数
 * @type {URLSearchParams}
 */
var params = new URLSearchParams();

/**
 * 存储 分页相关的 信息
 * @type {Vue}
 */
var data = new Vue({
    el:'#setPage',
    data:{
        page: 1,  //当前页数,默认为第一页(供主页面 的海报使用)
        size: 3, //每页显示的数据条数,默认为3条(供主页面 的海报使用)
        totalPage: null, //总页数,默认为null
    },
    methods:{
        //设置总页数: 服务端返回数据;
        setTotalPage:function (totalpage) {
            this.totalPage = totalpage;
            setPage.totalPage = totalpage;
        }
    }
})


/**
 * 获取 主标题,图片,描述信息,副标题 相关信息,并实现 轮播图;
 * @type {Vue}
 */
var mainTitle = new Vue({
    el:'#middleContent',
    data:{
        maTitle: null,  //主标题信息,默认为null;
        seTitleInfos: null,  //副标题信息,默认为null;
        desInfos: null, // 描述信息 默认为null;
        picNames: null,  //获取当前 显示的主题 所有图片名;
        picPage: 0,    //实现图片 的 轮播
        timer: ''       //时间组件
    },
    methods:{
      //设置请求参数
        setParams:function (page) {
            params.append('page',page);
            params.append('size',data.size);
        },
        //轮播图片 加
        plusRoolPic:function () {
            this.picPage = (this.picPage + 1) % this.picNames.length ;
        },
        //减
        reduceRoolPic:function () {
            if(this.picPage >= 1)
                this.picPage = (this.picPage - 1) % this.picNames.length ;
            else
                this.picPage = this.picNames.length - 1;
        },
        //获取主标题总页数
        getDesInfoAllPage:function(){
            //发送请求
            axios
                .post('index/getdesinfonumbymid')
                .then(function (response){
                    //如果页数大小 和 总的数据条数 都知道了,就求出总页数
                    if(response.data % data.size == 0){
                        data.totalPage = response.data/data.size;
                    }else{
                        data.totalPage = Math.ceil(response.data/data.size) + 1;
                    }
                })
                .catch(function (error) { // 请求失败处理
                    console.log(error);
                });
        },
        //向后台发送数据获取 分页获取所有主标题信息
        getDesInfos:function () {
            //设置请求参数
            this.clearParams();
            params.append('page',data.page);
            params.append('size',data.size);
            //发送请求
            axios
                .post('index/desinfo',params)
                .then(function (response){
                    mainTitle.desInfos = response.data;
                })
                .catch(function (error) { // 请求失败处理
                    console.log(error);
                });
        },
        //加页,并重新发送请求
        addDesInfoPage:function(){
            if(data.page < data.totalPage)
                ++data.page;
            else
                data.page = 1;
            mainTitle.getDesInfos();
            mainTitle.getDesInfoAllPage();
        },
        //减页
        clearDesInfoPage:function () {
            if(data.page > 1)
                --data.page;
            else
                data.page = data.totalPage;
            mainTitle.getDesInfos();
            mainTitle.getDesInfoAllPage();
        },
        //重置请求参数
        clearParams:function () {
            params = new URLSearchParams();
        }
    },
    mounted(){
        //自动获取 主标题 信息
        axios
            .get('index/maintitle'
            )
            .then(response => (this.maTitle = response.data))
            .catch(function (error) { // 请求失败处理
                console.log(error);
            });
        //自动获取 副标题信息
        axios
            .post('index/secondtitle')
            .then(function (response){
                mainTitle.seTitleInfos = response.data;
            })
            .catch(function (error) { // 请求失败处理
                console.log(error);
            });
        //自动获取 描述信息
        params.append('page',data.page);
        params.append('size',data.size);
        axios
            .post('index/desinfo',params)
            .then(function (response){
                mainTitle.desInfos = response.data;
            })
            .catch(function (error) { // 请求失败处理
                console.log(error);
            });

        //自动获取当前显示主题的所有图片名
        axios
            .post('index/picname')
            .then(function (response){
                mainTitle.picNames = response.data;
            })
            .catch(function (error) { // 请求失败处理
                console.log(error);
            });
        //自动获取页数
        this.getDesInfoAllPage();


        //自动轮播
        this.timer = setInterval(this.plusRoolPic, 2000);
    }
})



